import re
from playwright.sync_api import Playwright, sync_playwright, expect

def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.get_by_text("出库管理").click()
    page.get_by_role("link", name="出库单").click()
    page.get_by_role("button", name="新建出库单").click()
    page.get_by_role("main").locator("section").filter(has_text="出库单信息客户类型 仓库 公司名称 客户名称 手机号").get_by_role("textbox").first.click()
    page.get_by_text("仓储物流").click()
    page.get_by_role("main").locator("section").filter(has_text="出库单信息客户类型 仓储物流仓库 公司名称 客户名称 手机号").get_by_role("textbox").nth(1).click()
    page.locator("li").filter(has_text="南城仓").click()
    page.get_by_role("main").locator("section").filter(has_text="出库单信息客户类型 仓储物流仓库 南城仓公司名称 客户名称 手机号").get_by_role("textbox").nth(2).click()
    page.get_by_text("星月科技(小星,13200000009)").click()


    page.get_by_role("button", name="选择货物").click()
    page.get_by_role("row", name="ABS/北京首塑/A310 6660").locator("div").click()
    page.get_by_role("button", name="确定").click()
    page.get_by_role("row", name="库区1 ABS/北京首塑/A310 100", exact=True).get_by_role("textbox").first.click()
    page.get_by_role("row", name="库区1 ABS/北京首塑/A310 100", exact=True).get_by_role("textbox").first.fill("20")
    page.get_by_role("row", name="库区1 ABS/北京首塑/A310 100 20", exact=True).get_by_role("textbox").nth(1).click()
    page.get_by_role("row", name="库区1 ABS/北京首塑/A310 100 20", exact=True).get_by_role("textbox").nth(1).fill("200")
    page.get_by_role("row", name="库区1 ABS/北京首塑/A310 100 20 200").get_by_role("textbox").nth(2).click()
    page.get_by_role("row", name="库区1 ABS/北京首塑/A310 100 20 200").get_by_role("textbox").nth(2).fill("自动出库")

    page.get_by_role("main").locator("section").filter(has_text="提货信息提货车辆牌号 提货时间 司机姓名 司机手机号 司机身份证号").get_by_role("textbox").first.click()
    page.get_by_role("main").locator("section").filter(has_text="提货信息提货车辆牌号 提货时间 司机姓名 司机手机号 司机身份证号").get_by_role("textbox").first.fill("001")
    page.get_by_placeholder("请选择日期").click()
    page.get_by_text("今天").click()
    page.get_by_role("main").locator("section").filter(has_text="提货信息提货车辆牌号 提货时间 司机姓名 司机手机号 司机身份证号").get_by_role("textbox").nth(2).click()
    page.get_by_role("main").locator("section").filter(has_text="提货信息提货车辆牌号 提货时间 司机姓名 司机手机号 司机身份证号").get_by_role("textbox").nth(2).fill("小明")
    page.get_by_role("main").locator("section").filter(has_text="提货信息提货车辆牌号 提货时间 司机姓名 司机手机号 司机身份证号").get_by_role("textbox").nth(3).click()
    page.get_by_role("main").locator("section").filter(has_text="提货信息提货车辆牌号 提货时间 司机姓名 司机手机号 司机身份证号").get_by_role("textbox").nth(3).fill("13200000001")
    page.get_by_role("main").locator("section").filter(has_text="提货信息提货车辆牌号 提货时间 司机姓名 司机手机号 司机身份证号").get_by_role("textbox").nth(4).click()
    page.get_by_role("main").locator("section").filter(has_text="提货信息提货车辆牌号 提货时间 司机姓名 司机手机号 司机身份证号").get_by_role("textbox").nth(4).fill("429006123456")
    page.locator("textarea").click()
    page.locator("textarea").fill("出库自动化测试")
    page.get_by_role("button", name="提交").click()
    page.get_by_text("已出库").click()
    page.get_by_role("button", name="查询").click()

    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)
